// Copyright 2020 The Pigweed Authors
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy of
// the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations under
// the License.

// AUTOGENERATED - DO NOT EDIT
//
// This file was generated by generate_hash_macro.py.
// To make changes, update the script and run it to regenerate the files.
#pragma once

#include <stdint.h>

// 80-character version of the tokenizer hash function.
//
// The argument must be a string literal. It is concatenated with "" to ensure
// that this is the case.
//
// clang-format off

#define PW_TOKENIZER_65599_FIXED_LENGTH_80_HASH(str)                           \
  (uint32_t)(sizeof(str "") - 1 + /* The argument must be a string literal. */ \
             0x0001003fu * (uint8_t)str[0] +                                   \
             0x007e0f81u * (uint8_t)( 1 < sizeof(str) ? str[ 1] : 0) +         \
             0x2e86d0bfu * (uint8_t)( 2 < sizeof(str) ? str[ 2] : 0) +         \
             0x43ec5f01u * (uint8_t)( 3 < sizeof(str) ? str[ 3] : 0) +         \
             0x162c613fu * (uint8_t)( 4 < sizeof(str) ? str[ 4] : 0) +         \
             0xd62aee81u * (uint8_t)( 5 < sizeof(str) ? str[ 5] : 0) +         \
             0xa311b1bfu * (uint8_t)( 6 < sizeof(str) ? str[ 6] : 0) +         \
             0xd319be01u * (uint8_t)( 7 < sizeof(str) ? str[ 7] : 0) +         \
             0xb156c23fu * (uint8_t)( 8 < sizeof(str) ? str[ 8] : 0) +         \
             0x6698cd81u * (uint8_t)( 9 < sizeof(str) ? str[ 9] : 0) +         \
             0x0d1b92bfu * (uint8_t)(10 < sizeof(str) ? str[10] : 0) +         \
             0xcc881d01u * (uint8_t)(11 < sizeof(str) ? str[11] : 0) +         \
             0x7280233fu * (uint8_t)(12 < sizeof(str) ? str[12] : 0) +         \
             0x50c7ac81u * (uint8_t)(13 < sizeof(str) ? str[13] : 0) +         \
             0x8da473bfu * (uint8_t)(14 < sizeof(str) ? str[14] : 0) +         \
             0x4f377c01u * (uint8_t)(15 < sizeof(str) ? str[15] : 0) +         \
             0xfaa8843fu * (uint8_t)(16 < sizeof(str) ? str[16] : 0) +         \
             0x33b78b81u * (uint8_t)(17 < sizeof(str) ? str[17] : 0) +         \
             0x45ac54bfu * (uint8_t)(18 < sizeof(str) ? str[18] : 0) +         \
             0x7a27db01u * (uint8_t)(19 < sizeof(str) ? str[19] : 0) +         \
             0xeacfe53fu * (uint8_t)(20 < sizeof(str) ? str[20] : 0) +         \
             0xae686a81u * (uint8_t)(21 < sizeof(str) ? str[21] : 0) +         \
             0x563335bfu * (uint8_t)(22 < sizeof(str) ? str[22] : 0) +         \
             0x6c593a01u * (uint8_t)(23 < sizeof(str) ? str[23] : 0) +         \
             0xe3f6463fu * (uint8_t)(24 < sizeof(str) ? str[24] : 0) +         \
             0x5fda4981u * (uint8_t)(25 < sizeof(str) ? str[25] : 0) +         \
             0xe03916bfu * (uint8_t)(26 < sizeof(str) ? str[26] : 0) +         \
             0x44cb9901u * (uint8_t)(27 < sizeof(str) ? str[27] : 0) +         \
             0x871ba73fu * (uint8_t)(28 < sizeof(str) ? str[28] : 0) +         \
             0xe70d2881u * (uint8_t)(29 < sizeof(str) ? str[29] : 0) +         \
             0x04bdf7bfu * (uint8_t)(30 < sizeof(str) ? str[30] : 0) +         \
             0x227ef801u * (uint8_t)(31 < sizeof(str) ? str[31] : 0) +         \
             0x7540083fu * (uint8_t)(32 < sizeof(str) ? str[32] : 0) +         \
             0xe3010781u * (uint8_t)(33 < sizeof(str) ? str[33] : 0) +         \
             0xe4c1d8bfu * (uint8_t)(34 < sizeof(str) ? str[34] : 0) +         \
             0x24735701u * (uint8_t)(35 < sizeof(str) ? str[35] : 0) +         \
             0x4f63693fu * (uint8_t)(36 < sizeof(str) ? str[36] : 0) +         \
             0xf2b5e681u * (uint8_t)(37 < sizeof(str) ? str[37] : 0) +         \
             0xa144b9bfu * (uint8_t)(38 < sizeof(str) ? str[38] : 0) +         \
             0x69a8b601u * (uint8_t)(39 < sizeof(str) ? str[39] : 0) +         \
             0xb685ca3fu * (uint8_t)(40 < sizeof(str) ? str[40] : 0) +         \
             0xb52bc581u * (uint8_t)(41 < sizeof(str) ? str[41] : 0) +         \
             0x5b469abfu * (uint8_t)(42 < sizeof(str) ? str[42] : 0) +         \
             0x111f1501u * (uint8_t)(43 < sizeof(str) ? str[43] : 0) +         \
             0x4ba72b3fu * (uint8_t)(44 < sizeof(str) ? str[44] : 0) +         \
             0xc962a481u * (uint8_t)(45 < sizeof(str) ? str[45] : 0) +         \
             0x33c77bbfu * (uint8_t)(46 < sizeof(str) ? str[46] : 0) +         \
             0x39d67401u * (uint8_t)(47 < sizeof(str) ? str[47] : 0) +         \
             0xafc78c3fu * (uint8_t)(48 < sizeof(str) ? str[48] : 0) +         \
             0xce5a8381u * (uint8_t)(49 < sizeof(str) ? str[49] : 0) +         \
             0x4bc75cbfu * (uint8_t)(50 < sizeof(str) ? str[50] : 0) +         \
             0x02ced301u * (uint8_t)(51 < sizeof(str) ? str[51] : 0) +         \
             0x83e6ed3fu * (uint8_t)(52 < sizeof(str) ? str[52] : 0) +         \
             0x63136281u * (uint8_t)(53 < sizeof(str) ? str[53] : 0) +         \
             0xc4463dbfu * (uint8_t)(54 < sizeof(str) ? str[54] : 0) +         \
             0x8b083201u * (uint8_t)(55 < sizeof(str) ? str[55] : 0) +         \
             0x69054e3fu * (uint8_t)(56 < sizeof(str) ? str[56] : 0) +         \
             0x268d4181u * (uint8_t)(57 < sizeof(str) ? str[57] : 0) +         \
             0xbe441ebfu * (uint8_t)(58 < sizeof(str) ? str[58] : 0) +         \
             0xf1829101u * (uint8_t)(59 < sizeof(str) ? str[59] : 0) +         \
             0x0022af3fu * (uint8_t)(60 < sizeof(str) ? str[60] : 0) +         \
             0xb7c82081u * (uint8_t)(61 < sizeof(str) ? str[61] : 0) +         \
             0x5ac0ffbfu * (uint8_t)(62 < sizeof(str) ? str[62] : 0) +         \
             0x553df001u * (uint8_t)(63 < sizeof(str) ? str[63] : 0) +         \
             0xea3f103fu * (uint8_t)(64 < sizeof(str) ? str[64] : 0) +         \
             0xb5c3ff81u * (uint8_t)(65 < sizeof(str) ? str[65] : 0) +         \
             0xbabce0bfu * (uint8_t)(66 < sizeof(str) ? str[66] : 0) +         \
             0xd53a4f01u * (uint8_t)(67 < sizeof(str) ? str[67] : 0) +         \
             0xc85a713fu * (uint8_t)(68 < sizeof(str) ? str[68] : 0) +         \
             0xbf80de81u * (uint8_t)(69 < sizeof(str) ? str[69] : 0) +         \
             0xff37c1bfu * (uint8_t)(70 < sizeof(str) ? str[70] : 0) +         \
             0x9077ae01u * (uint8_t)(71 < sizeof(str) ? str[71] : 0) +         \
             0x3b74d23fu * (uint8_t)(72 < sizeof(str) ? str[72] : 0) +         \
             0x73febd81u * (uint8_t)(73 < sizeof(str) ? str[73] : 0) +         \
             0x4931a2bfu * (uint8_t)(74 < sizeof(str) ? str[74] : 0) +         \
             0xa5f60d01u * (uint8_t)(75 < sizeof(str) ? str[75] : 0) +         \
             0xe48e333fu * (uint8_t)(76 < sizeof(str) ? str[76] : 0) +         \
             0x723d9c81u * (uint8_t)(77 < sizeof(str) ? str[77] : 0) +         \
             0xb9aa83bfu * (uint8_t)(78 < sizeof(str) ? str[78] : 0) +         \
             0x34b56c01u * (uint8_t)(79 < sizeof(str) ? str[79] : 0))

// clang-format on
